This invention relates to I/O bus architecture exemplified by the IBM PERSONAL COMPUTER AT and other "IBM compatible" machines. This bus architecture is known as the "AT" bus or "Industry Standard Architecture (ISA)" bus. More particularly this invention is directed to an improvement in the interaction between the Direct Memory Access (DMA) Controller and the ISA bus to provide more flexibility in the use of 8-bit and 16-bit DMA channels.
Personal computer systems in general and IBM personal computers in particular have attained widespread use for providing computer power to many segments of today's modern society. Personal computer systems can usually be defined as a desk top, floor standing, or portable microcomputer that consists of a system unit having a single system processor and associated volatile and non-volatile memory, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage, and an optional printer. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. These systems are designed primarily to give independent computing power to a single user and are inexpensively priced for purchase by individuals or small businesses.
Many of these systems use an I/O bus architecture exemplified by the IBM PERSONAL COMPUTER AT and other "IBM compatible" machines. This bus architecture is referred to in this description as the "AT bus" or "ISA bus". This bus architecture is generally known, having been described both in technical manuals available from IBM and in more popularized texts such as The Winn Rosch Hardware Bible (Brady, N.Y., 1989). The interested reader is referred to those texts for further detailed information about this bus architecture.
As personal computer technology has developed and moved from eight to sixteen and eventually thirty two bit wide bus interaction and higher speed microprocessors, performance capability has been sought by separating the architecture of the personal computer into varying bus areas. More specifically, in the original IBM PC, what came to be known as the expansion bus was essentially a direct extension of the microprocessor connections, buffered and demultiplexed as required. Later, as the AT bus specification was developed and came into wide use, it became possible to sever the nearly direct connection between the microprocessor and the bus, giving rise to the presence of what became known as the local processor bus and the renaming of the expansion bus as the input/output (or I/O) bus. Typically, in order to enhance performance, the local processor bus runs at a higher clock speed than does the input/output bus. The IBM AT architecture also opened the possibility of running more than one microprocessor on the input/output bus, through use of direct memory access (DMA) interrupts.
The AT bus is designed with 8 DMA channels--four 8-bit DMA channels and four 16-bit DMA channels. One of the 16-bit DMA channels is reserved for communication between DMA chips leaving three 16-bit DMA channels available for use with I/O devices. As adapters, chips and other peripheral devices were developed for attachment to the DMA channels, many more peripheral devices were designed for the 8-bit DMA channel than the 16-bit DMA channel. Further some of the more sophisticated chips using 8-bit DMA channels consume as many as three of the channels with one chip. A system using such a chip has its 8-bit channels quickly committed and unavailable for use by other devices, while at the same time having three 16-bit DMA channels that possibly go unused.